package com.luck.emp.product.logic;

import java.util.List;

import com.luck.emp.entity.EmpTProdBase;
import com.luck.emp.entity.EmpTProdSale;
import com.luck.emp.entity.EmpTProdVend;
import com.luck.emp.product.qry.ProductQry;
import com.luck.pf.common.entity.UserBean;
import com.luck.pf.framework.logic.IBaseLogic;

/**
 * 说明
 * Copyright: Copyright (c) 2011
 * 深圳**科技
 * @author 
 * 
 */
public interface IProductLogic extends IBaseLogic{
	/**
	 * 查找分页信息
	 * isdiy;//是否组装商品：0－独立商品1－组装商品
	 */
	public  <T> T findProductPage(ProductQry qry, Class<T> cls);
	/**
	 * 保存商品主表信息
	 **/
	public String saveProduct(UserBean userBean,EmpTProdBase base) throws Exception;
	/**
	 * 保存商品销售信息
	 **/
	public String saveProductSale(UserBean userBean,EmpTProdSale sale) throws Exception;

	/**
	 * 查询商品供应商关系
	 **/
	public List<EmpTProdVend> findProdVendRel(ProductQry qry);
	/**
	 * 保存商品供应商关系
	 **/
	public String saveProdVendRel(String productCode, String[] vendorCodes) throws Exception;
	/**
	 * 查找商品的 组装关系
	 * @return
	 */
	public List findProdAssRel(String productCode);

	/**
	 * 保存商品组装关系
	 */
	public String saveProdAssRel(String productCode,String[] productCodeSubs,String[] qtys) throws Exception;
	
	/**
	 * 删除
	 */
	public String deleteProduct(UserBean userBean,EmpTProdBase entity) throws Exception;
	/**
	 * 
	 * 检查SKU是否存在
	 * @return
	 */
	public EmpTProdBase findProductBySku(Long deptId, String SKU);
	public EmpTProdBase findProductByProdBarcode(Long deptId,String prodBarcode);
	public EmpTProdBase findProductByVendorCode( Long deptId, String vendorCode);
	//根据供应商编码得到所供应的商品编码列表
	public String[] findProductCodesByVendorCode(String vendorCode);
	//查找此仓库所有商品列表及当前库存
	public List<EmpTProdBase> findProductsByWhcode(String whCode);
}